﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

using RRTWSEntityDSD.Dominio;
using System.Data.SqlClient;
using System.Data;
using WebServiceDSDG6.Persistencia;

namespace RRTWSNegocioDSD.Dao
{
    public class PagoDAO : BaseDAO<Pago, int>
    {

        public Pago insert(Pago pago)
        {
            return Crear(pago);
        }

        public Pago actualizarPagoEnEfectivo(Pago pago)
        {
            return Modificar(pago);
        }


        public Pago getPagoPorOperacionEnLinea(int operacion)
        {

            try
            {
                string query = " SELECT PAG_ID_PAGO ,PAG_FECHA_PAGO      ,PAG_ESTADO_PAGO      ,PAG_MODO_PAGO      ,PAG_ENTIDAD_BANCARIA      ,PAG_NUMERO_TARJETA      ,PAG_FECHA_VENCIMIENTO      ,OPE_ID_OPERACION  FROM PAGO  where OPE_ID_OPERACION =  " + operacion;

                SqlCommand cmd = new SqlCommand(query, cnx);
                cnx.Open();
                using (SqlDataReader dr = cmd.ExecuteReader())
                {
                    while (dr.Read())
                    {
                        if (!Convert.IsDBNull(dr["PAG_ID_PAGO"]))
                        {
                            Pago a = new Pago()
                            {
                                idPago = int.Parse(dr["PAG_ID_PAGO"].ToString()),
                                fechaRegistro = dr["PAG_FECHA_PAGO"].ToString(),
                                estado = int.Parse(dr["PAG_ESTADO_PAGO"].ToString()),
                                modo = int.Parse(dr["PAG_MODO_PAGO"].ToString()),
                                entidadBancaria = dr["PAG_ENTIDAD_BANCARIA"].ToString(),
                                numeroTarjeta = dr["PAG_NUMERO_TARJETA"].ToString(),
                                fechaVencimiento = dr["PAG_FECHA_VENCIMIENTO"].ToString(),
                                idOperacion = int.Parse(dr["OPE_ID_OPERACION"].ToString())
                            };
                            return a;
                        }
                    }
                }
            }
            catch (Exception e)
            {
                throw new InvalidOperationException("Error de conexiones:  "+ e.Message);
            }

            finally
            {
                cnx.Close();
            }
            return null;

        }

    }
}